package com.battle.service.utils;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author anni.zhu
 * @author anni.zhu@king-v.com
 * Created in 2024/11/1 15:56
 */

public class CityUtil {
    private static Map<String, List<String>> provinceCityMap;

    public static Map<String, List<String>> getCascadingCities() {
        ProvinceCity();
        return provinceCityMap;
    }

    public static void ProvinceCity() {
        provinceCityMap = new HashMap<>();

        // 直辖市
        provinceCityMap.put("北京市", Arrays.asList("北京"));
        provinceCityMap.put("天津市", Arrays.asList("天津"));
        provinceCityMap.put("上海市", Arrays.asList("上海"));
        provinceCityMap.put("重庆市", Arrays.asList("重庆"));

        // 普通省份
        provinceCityMap.put("河北省", Arrays.asList("石家庄", "唐山", "秦皇岛", "邯郸", "邢台", "保定", "张家口", "承德", "沧州", "廊坊", "衡水"));
        provinceCityMap.put("山西省", Arrays.asList("太原", "大同", "阳泉", "长治", "晋城", "朔州", "忻州", "吕梁", "晋中", "临汾", "运城"));
        provinceCityMap.put("内蒙古自治区", Arrays.asList("呼和浩特", "包头", "乌海", "赤峰", "通辽", "鄂尔多斯", "呼伦贝尔", "巴彦淖尔", "乌兰察布", "兴安盟", "锡林郭勒盟", "阿拉善盟"));
        provinceCityMap.put("辽宁省", Arrays.asList("沈阳", "大连", "鞍山", "抚顺", "本溪", "丹东", "锦州", "营口", "阜新", "辽阳", "盘锦", "铁岭", "朝阳", "葫芦岛"));
        provinceCityMap.put("吉林省", Arrays.asList("长春", "吉林", "四平", "辽源", "通化", "白山", "松原", "白城", "延边朝鲜族自治州"));
        provinceCityMap.put("黑龙江省", Arrays.asList("哈尔滨", "齐齐哈尔", "鸡西", "鹤岗", "双鸭山", "大庆", "伊春", "佳木斯", "七台河", "牡丹江", "黑河", "绥化", "大兴安岭地区"));
        provinceCityMap.put("江苏省", Arrays.asList("南京", "无锡", "徐州", "常州", "苏州", "南通", "连云港", "淮安", "盐城", "扬州", "镇江", "泰州", "宿迁"));
        provinceCityMap.put("浙江省", Arrays.asList("杭州", "宁波", "温州", "嘉兴", "湖州", "绍兴", "金华", "衢州", "舟山", "台州", "丽水"));
        provinceCityMap.put("安徽省", Arrays.asList("合肥", "芜湖", "蚌埠", "淮南", "马鞍山", "淮北", "铜陵", "安庆", "黄山", "滁州", "阜阳", "宿州", "六安", "亳州", "池州", "宣城"));
        provinceCityMap.put("福建省", Arrays.asList("福州", "厦门", "莆田", "三明", "泉州", "漳州", "南平", "龙岩", "宁德"));
        provinceCityMap.put("江西省", Arrays.asList("南昌", "景德镇", "萍乡", "九江", "新余", "鹰潭", "赣州", "吉安", "宜春", "抚州", "上饶"));
        provinceCityMap.put("山东省", Arrays.asList("济南", "青岛", "淄博", "枣庄", "东营", "烟台", "潍坊", "济宁", "泰安", "威海", "日照", "临沂", "德州", "聊城", "滨州", "菏泽"));
        provinceCityMap.put("河南省", Arrays.asList("郑州", "开封", "洛阳", "平顶山", "安阳", "鹤壁", "新乡", "焦作", "濮阳", "许昌", "漯河", "三门峡", "南阳", "商丘", "信阳", "周口", "驻马店", "济源"));
        provinceCityMap.put("湖北省", Arrays.asList("武汉", "黄石", "十堰", "宜昌", "襄阳", "鄂州", "荆门", "孝感", "荆州", "黄冈", "咸宁", "随州", "恩施土家族苗族自治州", "仙桃", "潜江", "天门", "神农架林区"));
        provinceCityMap.put("湖南省", Arrays.asList("长沙", "株洲", "湘潭", "衡阳", "邵阳", "岳阳", "常德", "张家界", "益阳", "郴州", "永州", "怀化", "娄底", "湘西土家族苗族自治州"));
        provinceCityMap.put("广东省", Arrays.asList("广州", "深圳", "珠海", "汕头", "佛山", "韶关", "湛江", "肇庆", "江门", "茂名", "惠州", "梅州", "汕尾", "河源", "阳江", "清远", "东莞", "中山", "潮州", "揭阳", "云浮"));
        provinceCityMap.put("广西壮族自治区", Arrays.asList("南宁", "柳州", "桂林", "梧州", "北海", "防城港", "钦州", "贵港", "玉林", "百色", "贺州", "河池", "来宾", "崇左"));
        provinceCityMap.put("海南省", Arrays.asList("海口", "三亚", "三沙", "儋州", "琼海", "文昌", "万宁", "东方", "五指山", "乐东黎族自治县", "澄迈县", "临高县", "白沙黎族自治县", "昌江黎族自治县", "定安县", "屯昌县", "保亭黎族苗族自治县", "琼中黎族苗族自治县", "陵水黎族自治县"));
        provinceCityMap.put("四川省", Arrays.asList("成都", "自贡", "攀枝花", "泸州", "德阳", "绵阳", "广元", "遂宁", "内江", "乐山", "南充", "眉山", "宜宾", "广安", "达州", "雅安", "巴中", "资阳", "阿坝藏族羌族自治州", "甘孜藏族自治州", "凉山彝族自治州"));
        provinceCityMap.put("贵州省", Arrays.asList("贵阳", "六盘水", "遵义", "安顺", "毕节", "铜仁", "黔西南布依族苗族自治州", "黔东南苗族侗族自治州", "黔南布依族苗族自治州"));
        provinceCityMap.put("云南省", Arrays.asList("昆明", "曲靖", "玉溪", "保山", "昭通", "丽江", "普洱", "临沧", "楚雄彝族自治州", "红河哈尼族彝族自治州", "文山壮族苗族自治州", "西双版纳傣族自治州", "大理白族自治州", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "迪庆藏族自治州"));
        provinceCityMap.put("西藏自治区", Arrays.asList("拉萨", "日喀则", "昌都", "林芝", "山南", "那曲", "阿里"));
        provinceCityMap.put("陕西省", Arrays.asList("西安", "铜川", "宝鸡", "咸阳", "渭南", "延安", "汉中", "榆林", "安康", "商洛"));
        provinceCityMap.put("甘肃省", Arrays.asList("兰州", "嘉峪关", "金昌", "白银", "天水", "武威", "张掖", "平凉", "酒泉", "庆阳", "定西", "陇南", "临夏回族自治州", "甘南藏族自治州"));
        provinceCityMap.put("青海省", Arrays.asList("西宁", "海东", "海北藏族自治州", "海南藏族自治州", "海西蒙古族藏族自治州", "黄南藏族自治州", "果洛藏族自治州", "玉树藏族自治州"));
        provinceCityMap.put("宁夏回族自治区", Arrays.asList("银川", "石嘴山", "吴忠", "固原", "中卫"));
        provinceCityMap.put("新疆维吾尔自治区", Arrays.asList("乌鲁木齐", "克拉玛依", "吐鲁番", "哈密", "昌吉回族自治州", "博尔塔拉蒙古自治州", "巴音郭楞蒙古自治州", "阿克苏地区", "克孜勒苏柯尔克孜自治州", "喀什地区", "和田地区", "伊犁哈萨克自治州", "塔城地区", "阿勒泰地区", "石河子市", "阿拉尔市", "图木舒克市", "五家渠市", "北屯市"));

        // 特别行政区
        provinceCityMap.put("香港特别行政区", Arrays.asList("香港"));
        provinceCityMap.put("澳门特别行政区", Arrays.asList("澳门"));
        provinceCityMap.put("台湾省", Arrays.asList("台北", "新北", "桃园", "台中", "台南", "高雄", "基隆", "新竹", "嘉义", "屏东", "宜兰", "花莲", "台东", "澎湖", "金门", "连江"));

    }

}
